package com.sky.service;

import com.sky.dto.DishReviewDTO;
import com.sky.result.Result;
import com.sky.vo.DishReviewVO;

import java.util.List;

/**
 * 菜品评价服务接口
 */
public interface DishReviewService {

    /**
     * 添加菜品评价
     * @param dishReviewDTO 菜品评价DTO
     * @param userId 用户ID
     * @return 结果
     */
    Result<String> addReview(DishReviewDTO dishReviewDTO, Long userId);

    /**
     * 根据订单ID查询用户已评价的菜品列表
     * @param orderId 订单ID
     * @param userId 用户ID
     * @return 评价列表
     */
    Result<List<DishReviewVO>> getReviewsByOrderId(Long orderId, Long userId);

    /**
     * 根据菜品ID查询评价列表
     * @param dishId 菜品ID
     * @return 评价列表
     */
    Result<List<DishReviewVO>> getReviewsByDishId(Long dishId);

    /**
     * 查询订单中未评价的菜品列表
     * @param orderId 订单ID
     * @param userId 用户ID
     * @return 未评价的菜品列表
     */
    Result<List<DishReviewVO>> getUnreviewedDishByOrderId(Long orderId, Long userId);
}